const { domain } = require("process");

classSubject {
    constructor() {
        this.observers = [];
    }
 
    add(observer) {
        this.observers.push(observer);
    }
 
    notify(...args) {
        this.observers.forEach(observer => observer.update(...args));
    }
}
 
classObserver {
    update(...args) {
        console.log(...args);
    }
}
 
// 创建观察者ob1
letob1 = newObserver();
// 创建观察者ob2
letob2 = newObserver();
// 创建目标sub
letsub = newSubject();
// 目标sub添加观察者ob1 （目标和观察者建立了依赖关系）
sub.add(ob1);
// 目标sub添加观察者ob2
sub.add(ob2);
// 目标sub触发SMS事件（目标主动通知观察者）
sub.notify('I fired `SMS` event');


// var subject = new Rx.Subject();

// subject.subscribe({
//   next: (v) => console.log('observerA: ' + v)
// });
// subject.next(1);